declare const x: number; if (x) {}
<T extends number>(x: T) => (x) ? 1 : 0;
declare const a: any[] & { notLength: number }; if (a.notLength) {}
// output: declare const x: number; if (x !== 0) {}; declare const x: number; if (!Number.isNaN(x)) {}; declare const x: number; if (Boolean(x)) {}
// output: <T extends number>(x: T) => (x !== 0) ? 1 : 0;  <T extends number>(x: T) => (!Number.isNaN(x)) ? 1 : 0; <T extends number>(x: T) => (Boolean(x)) ? 1 : 0;
// output: declare const a: any[] & { notLength: number }; if (a.notLength !== 0) {}; declare const a: any[] & { notLength: number }; if (!Number.isNaN(a.notLength)) {}; declare const a: any[] & { notLength: number }; if (Boolean(a.notLength)) {}
